import axios from "axios";
import Vue from "vue";
import router from "./router";
// 创建axios实例
const http = axios.create({
  baseURL: "http://localhost:3000/admin/api", // 接口地址
});

// Add a request interceptor,在请求时添加的配置项
http.interceptors.request.use(
  function (config) {
    // 在请求头部添加token参数,判断是否有token值
    if (sessionStorage.token) {
      config.headers.Authorization = "Bearer " + (sessionStorage.token || "");
    }
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// Add a response interceptor,拦截器
http.interceptors.response.use(
  (response) => {
    // 成功时处理的方法
    return response;
  },
  (error) => {
    // 当有错误内容时，才触发改拦截器作用
    if (error.response.data.message) {
      // 超过300的状态码就会执行当前的error拦截器
      Vue.prototype.$message.error({
        message: error.response.data.message,
      });
      if (error.response.status === 401) {
        Vue.prototype.$message.error({
          message: error.response.data.message,
        });
        router.push("/login");
      }
    }
    // console.log(error.response.data.message);
    return Promise.reject(error);
  }
);

// 导出http实例
export default http;
